package jzOffer;

import java.util.HashMap;
import java.util.Map;

public class Num07 {
    Map<Integer,Integer> map=new HashMap<>();
    int[] preorder;
    public TreeNode buildTree(int[] preorder, int[] inorder) {
        this.preorder=preorder;
        int n=inorder.length;
        for(int i=0;i<n;i++){
            map.put(inorder[i],i);
        }
        return myBuilderTree(0,0,n-1);
    }
    private TreeNode myBuilderTree(int root,int left,int right){
        if(left>right) return null;
        TreeNode node=new TreeNode(preorder[root]);
        int i=map.get(preorder[root]); //中序遍历中根节点的位置
        node.left=myBuilderTree(root+1,left,i-1);
        node.right=myBuilderTree(root+i-left+1,i+1,right);
        return node;
    }
}
